﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace UpdateLib.Model {
    /// <summary>
    /// UpdateInfo model with all infomation. 
    /// 
    /// <list type="bullet">
    /// <item>
    /// <term>Author</term>
    /// <description>Sebastian Will</description>
    /// </item>
    /// </list>
    /// 
    /// </summary> 
    public class UpdateInfo {

        #region Fields

        /// <summary>
        /// Lib version object
        /// </summary>
        private Version _libVersion;

        /// <summary>
        /// Help version object
        /// </summary>
        private Version _helpVersion;

        /// <summary>
        /// Config version object
        /// </summary>
        private Version _confVersion;

        /// <summary>
        /// Applicaton version object
        /// </summary>
        private Version _appVersion;

        /// <summary>
        /// Exists a help update
        /// </summary>
        private bool _hasHelpUpdate;

        /// <summary>
        /// Exists a lib update
        /// </summary>
        private bool _hasLibUpdate;

        /// <summary>
        /// Exists a config update
        /// </summary>
        private bool _hasConfUpdate;

        /// <summary>
        /// Exists a application update
        /// </summary>
        private bool _hasAppUpdate;

        /// <summary>
        /// The help update url
        /// </summary>
        private string _helpUpdateUrl;

        /// <summary>
        /// The lib update url
        /// </summary>
        private string _libUpdateUrl;

        /// <summary>
        /// The config update url
        /// </summary>
        private string _confUpdateUrl;

        /// <summary>
        /// The application update url
        /// </summary>
        private string _appUpdateUrl;

        #endregion

        #region Properties

        /// <summary>
        /// Lib version object
        /// </summary>
        public Version LibVersion {
            get { return _libVersion; }
            set { _libVersion = value; }
        }

        /// <summary>
        /// Help version object
        /// </summary>
        public Version HelpVersion {
            get { return _helpVersion; }
            set { _helpVersion = value; }
        }

        /// <summary>
        /// Config version object
        /// </summary>
        public Version ConfVersion {
            get { return _confVersion; }
            set { _confVersion = value; }
        }

        /// <summary>
        /// Application version object
        /// </summary>
        public Version AppVersion {
            get { return _appVersion; }
            set { _appVersion = value; }
        }

        /// <summary>
        /// Exists a help update
        /// </summary>
        public bool HasHelpUpdate {
            get { return _hasHelpUpdate; }
            set { _hasHelpUpdate = value; }
        }

        /// <summary>
        /// Exists a lib update
        /// </summary>
        public bool HasLibUpdate {
            get { return _hasLibUpdate; }
            set { _hasLibUpdate = value; }
        }

        /// <summary>
        /// Exists a config update
        /// </summary>
        public bool HasConfUpdate {
            get { return _hasConfUpdate; }
            set { _hasConfUpdate = value; }
        }

        /// <summary>
        /// Exists a application update
        /// </summary>
        public bool HasAppUpdate {
            get { return _hasAppUpdate; }
            set { _hasAppUpdate = value; }
        }

        /// <summary>
        /// The help update url
        /// </summary>
        public string HelpUpdateUrl {
            get { return _helpUpdateUrl; }
            set { _helpUpdateUrl = value; }
        }

        /// <summary>
        /// The lib update url
        /// </summary>
        public string LibUpdateUrl {
            get { return _libUpdateUrl; }
            set { _libUpdateUrl = value; }
        }

        /// <summary>
        /// The config update url
        /// </summary>
        public string ConfUpdateUrl {
            get { return _confUpdateUrl; }
            set { _confUpdateUrl = value; }
        }

        /// <summary>
        /// The application update url
        /// </summary>
        public string AppUpdateUrl {
            get { return _appUpdateUrl; }
            set { _appUpdateUrl = value; }
        }

        #endregion

    }
}

